原帖 | Jack | 2024-10-22 02:04 | 👍0 | 阅读约1
老师,我说的对吗?
使用RTOS还要注意外设中断进出不能大于一个tick,PendSV和Syetick优先级在FreeRTOS中配置的中断优先级是15。也就是说MCU外设中断的优先级比OS任务调度器和Syetick记录滴答节拍优先级高。为的就是实时性,因为这两个中断中一般执行上下文相关操作时间大约会占微秒级别。并且上下文切换的时候是临界区操作,关闭了所有中断,为了保证系统的Tick数计数准确。在设计时候要保证进入中断的时间最好小于半个Tick并且绝对不能大于一个tick。
答:没答到点子上,从丢中断上考虑下。
老师,中断嵌套:如果一个中断处理过程中有另一个中断到来,RTOS需要能够正确处理这种嵌套中断的情况。保留的高优先级可以用来处理这种复杂的中断场景。
答:如果大于两个tick,则两次悬起就会丢一次,那systick就丢了一次,应该是服务函数最大的嵌套深度不大于两个tick,对有实际时间要求的项目,应该用dwt或rtc计数(精度不同),你搜下dwt计时。
相关笔记